<?php
/**
 * @author daniel
 */
class Propiedades_movimiento extends Controller {

	function Propiedades_movimiento() {
		parent::Controller();

		$models = array(
			"comunas/comunas_model",
			"propiedades/tipos_tasaciones_model",
			"propiedades/estilos_propiedades_model",
			"propiedades/tipos_propiedades_model",
			"propiedades/disponibilidades_model",
			"propiedades/secciones_model",
			"propiedades/propietarios_model",
			"propiedades/propiedades_model",
			"propiedades/tasaciones_model",
			"propiedades/imagenes_propiedades",
			"buscadores/buscadores_model"
		);

		$this->load->model($models);
        $this->load->library('session');
        $this->load->library('autenticacion');

	}

	function _view_data_para_formulario_de_ingreso() {

        if ( $this->autenticacion->logged_in() ){

            $data = array();
            $data["title"] = "titulo";
            $data["comunas"] = $this->comunas_model->listado_en_array_doble();
            $data["tipo_tasacion_model"] = $this->tipos_tasaciones_model->listado_en_array_doble();
            $data["disponibilidades"] = $this->disponibilidades_model->listado_en_array_doble();
            $data["secciones"] = $this->secciones_model->listado_en_array_doble();
            $data["tipo_propiedades"] = $this->tipos_propiedades_model->listado_en_array_doble();
			$data["estilos_de_propiedad"] = $this->estilos_propiedades_model->listado_en_array_doble();

            return $data;
        }else{
            $this->load->view('principal_login');
        }

	}

	function listar_propiedades_edicion($page = 0) {
		$this->stepback->put("propiedades_movimiento", "listar_propiedades_edicion", $page);

        if ( $this->autenticacion->logged_in() ){

            $this->load->library("templator");
            $this->load->library("pagination");

            $viewName = "propiedades/listado_backend_propiedades";
            $viewData["query_propiedades"] = $this->propiedades_model->listar_todas_prop_adm($page);

            $pagination_config['base_url'] = site_url("propiedades_movimiento/listar_propiedades_edicion");
            $pagination_config['total_rows'] = $this->propiedades_model->contar_todas_prop_adm();
            $pagination_config['per_page'] = $this->config->item("per_page");

            $this->pagination->initialize($pagination_config);
            $this->templator->template_sin_buscador($viewName, $viewData);

        }else{
            $this->load->view('principal_login');
        }

	}

    function form_editar(){

        if ( $this->autenticacion->logged_in() ){

            if( !empty( $_POST ) ) {

                $id_propiedad = $this->input->post( 'id');

                if( $this->input->post('editar') == 'ver' ){
                    $this->view_edit_propiedades($id_propiedad);
                }else{
                    $this->remove_propiedades($id_propiedad);
                }
            }

        }else{
            $this->load->view('principal_login');
        }
    }

    function view_edit_propiedades($id){

        if ( $this->autenticacion->logged_in() ){
            $data = $this->_view_data_para_formulario_de_ingreso(); //  carga dropBox view formulario_editable
            $data["propiedades"] = $this->propiedades_model->buscar_propiedad($id);

            $this->load->view('propiedades/edit_remov_propiedades',$data);
        }else{

            $this->load->view('principal_login');

        }

    }

    function remove_propiedades($id){

        if ( $this->autenticacion->logged_in() ){

            $this->propiedades_model->eliminar_propiedad($id);
            $this->tasaciones_model->eliminar_tasacion($id);
            $this->imagenes_propiedades->eliminar_imagenes($id);

			$last = $this->stepback->pop("propiedades_movimiento", "listar_propiedades_edicion");
			if (FALSE !== $last) {
				redirect('propiedades_movimiento/listar_propiedades_edicion/' . $last,'refresh');
			} else {
				redirect('propiedades_movimiento/listar_propiedades_edicion','refresh');
			}
        }else{

            $this->load->view('principal_login');

        }
    }


	function editar_propiedades() {

				$this->load->library('form_validation');

				/*
				 * validaciones propiedad
				 */
				$this->form_validation->set_rules('fecha_ingreso', 'Fecha de ingreso.', 'required');
				$this->form_validation->set_rules('direccion', 'Dirección.', 'required|min_length[5]|max_length[100]');
				$this->form_validation->set_rules('comuna', 'Comuna.', 'required|min_length[3]|max_length[50]');
				$this->form_validation->set_rules('referencia', 'Referencia.', 'required|min_length[3]|max_length[50]');
				$this->form_validation->set_rules('barrio', 'Barrio.', 'max_length[50]');
				$this->form_validation->set_rules('tipo_propiedad', 'Casa/Departamento.', 'required');

				/*
				 * validaciones duenho
				 */
				$this->form_validation->set_rules('propietario_nombre', 'Nombre.', 'required|max_length[100]');
				$this->form_validation->set_rules('propietario_email', 'E-mail.', 'valid_email');
				$this->form_validation->set_rules('propietario_direccion', 'Dirección.', 'required|min_length[5]|max_length[100]');
				$this->form_validation->set_rules('propietario_telefonos', 'Teléfonos.', 'required');

				/*
				 * validaciones tasacion
				 */
				$this->form_validation->set_rules('tasacion_tipo', 'Venta/Arriendo', 'required');
				$this->form_validation->set_rules('tasacion_disponibilidad', 'Estado', 'required');
				$this->form_validation->set_rules('tasacion_precio', 'Precio $', 'required');
				$this->form_validation->set_rules('tasacion_seccion', 'Sección', 'required');


				$this->form_validation->set_message('required', 'Debe introducir el campo %s');
				$this->form_validation->set_message('min_length', 'El campo %s debe ser de al menos %s carácteres');
				$this->form_validation->set_message('valid_email', 'Debe escribir una dirección de email correcta');
				$this->form_validation->set_message('max_length', 'El campo %s debe ser de un maximo de %s carácteres');

				if ($this->form_validation->run() == FALSE) {
					$id = $this->input->post( 'id');
					$this->view_edit_propiedades($id);
				} else {

						$propiedad = array();
						$propiedad['id']            = $this->input->post( 'id_propiedad');
						$propiedad['fecha_ingreso'] = $this->input->post( 'fecha_ingreso');
						$propiedad['tipo_propiedad']= $this->input->post( 'tipo_propiedad');
						$propiedad['direccion']     = $this->input->post( 'direccion');
						$propiedad['comuna']        = $this->input->post( 'comuna');
						$propiedad['referencia']    = $this->input->post( 'referencia');
						$propiedad['barrio']        = $this->input->post( 'sector');
						$propiedad['dormitorios']   = $this->input->post( 'dormitorios');
						$propiedad['servicios']     = $this->input->post( 'servicios');
						$propiedad['banhos']        = $this->input->post( 'banhos');
						$propiedad['tipo']          = $this->input->post( 'tipo');
						$propiedad['descripcion']   = $this->input->post( 'descripcion');
						$propiedad['comentarios']   = $this->input->post( 'comentarios');

						$propietario = array();
						$propietario['id']      = $this->input->post( 'id_propietario');
						$propietario['nombre']      = $this->input->post( 'propietario_nombre');
						$propietario['email']       = $this->input->post( 'propietario_email');
						$propietario['direccion']   = $this->input->post( 'propietario_direccion');
						$propietario['telefonos']   = $this->input->post( 'propietario_telefonos');

						$tasacion = array();

						$tasacion['tipo_tasacion']  = $this->input->post( 'tasacion_tipo');
						$tasacion['disponibilidad'] = $this->input->post( 'tasacion_disponibilidad');
						$tasacion['unidad']         = $this->input->post( 'tasacion_unidad');
						$tasacion['seccion']        = $this->input->post( 'tasacion_seccion');

						if($this->input->post('tasacion_unidad')=='UF'){
								$tasacion['precio']= str_replace(",", ".", $this->input->post( 'tasacion_precio') );
						}else{
								$tasacion['precio']= str_replace(".", "", $this->input->post( 'tasacion_precio') );
						}

						/*
						 * editar o agregar propietario
						 */
						$id_propietario_original = $propietario["id"];
						$id_propietario = $this->propietarios_model->editar_propietario($propietario);

						$propiedad['id_propietario'] = $id_propietario;

						/*
						 * editar la propiedad
						 */
						$this->propiedades_model->editar_propiedad($propiedad);

						/*
						 * si el propietario fue cambiado, entonces borro el anterior si ya no tiene propiedades
						 */
						if ($id_propietario != $id_propietario_original) {
							/* la id del propietario, cambio osea, que se creo un propietario*/
							$owns = $this->propiedades_model->count_owned_by_id($id_propietario_original);
							if ($owns == 0) {
								$this->propietarios_model->borrar_propietario($id_propietario_original);
							}
						}



						/*
						 * editar la tasacion
						 */
						$tasacion["id_propiedad"] = $propiedad['id'];
						$this->tasaciones_model->editar_tasacion($tasacion);


						$last = $this->stepback->pop("propiedades_movimiento", "listar_propiedades_edicion");
						if (FALSE !== $last) {
							redirect('propiedades_movimiento/listar_propiedades_edicion/' . $last,'refresh');
						} else {
							redirect('propiedades_movimiento/listar_propiedades_edicion','refresh');
						}
				}

    }

		function eliminar_imagen_propiedad_by_id(){

				$id_propiedad = $this->input->post( 'id_propiedad');
				$cod_imagen = $this->input->post( 'id_imagen');

				$this->imagenes_propiedades->eliminar_imagenes_by_id($cod_imagen);

				$this->view_edit_propiedades($id_propiedad);
		}

		function guardar_imagenes_edicion(){

				$id_propiedad = $this->input->post( 'id_propiedad');

					/*
					 * agrego las imagenes adjuntas del modulo de edicion
					 */
					$config['upload_path'] = './imagenes/propiedades/';
					$config['allowed_types'] = 'gif|jpg|png|bmp';
					$config['max_size']    = '8192'; //4 meg

					$this->load->library("upload", $config);

					$files = $_FILES;
					foreach ($files as $name => $file) {
								if (!empty($file['name'])) {

										$this->upload->do_upload($name);
										$this->imagenes_propiedades->agregar_imagen($id_propiedad,$name);


								}
					}

					$this->view_edit_propiedades($id_propiedad);
		}

}
?>